This invention generally relates to analyzing legacy applications, and more specifically, to tracking data flow in legacy applications.
Many businesses and other enterprises have existing computer software applications that are not engineered or architected for many current environments or uses. For example, many existing applications cannot perform distributed and parallel processing and are unable to be deployed on an elastic computing environment without significant changes to the existing applications' source code and application architecture. A significant challenge is applying a cost effective and simple migration and transformation process for legacy applications and products so that they can be incorporated into other computing environments.
A legacy system or application program is a previously deployed or developed application that continues to be used, typically because it still functions for the users' needs or is too expensive to replace, even though newer technology or more efficient methods of performing a task are now available. Legacy applications include, for example, thin client and server-based applications, client/server applications, client workstation applications, and proprietary client applications running on proprietary architectures and operating systems.
To implement an existing legacy application in a new computing environment and enable the application, for example, to be distributed, parallel, and demand-elastic can be a very expensive and time-consuming activity. The existing application architecture and source code need to be re-factored and significantly rewritten, tested extensively, and re-integrated with other applications that they are used with.
The cost and time to implement such a legacy application re-write can exceed the original cost and development time of the application. Given these impediments, enterprises are often unable to adapt their existing applications to new environments. New computing environments, however, often offer significant business and technical value including parallel processing, and improved performance, resiliency, accessibility and availability.
Many legacy applications do not have much documentation, and often only a very few people have knowledge about the applications, how they work, and key aspects of the legacy applications such as data flow sequences in the applications, and associated or related upstream and downstream applications.
Typically, during the redesign of any legacy application, a substantial amount of time is needed to understand the logic and functionalities of the application, related or associated upstream and downstream applications, and other important features of the legacy application. This substantial amount of time is required because there is no or only very little information readily available about the application. The large amount of time that is needed to develop the necessary understanding of the legacy application and its environment increases the cost of redesigning the application.